package com.gp.dwt.base;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @author 小杜
 */
@Data
@AllArgsConstructor
@NoArgsConstructor

public class Result {
    private Integer code;
    private String msg;
    private Object data;

    /**
     * 直接执行返回成功信息
     * @return {code:200,message:"success",data:null}
     */
    public static Result responseResult(){
        return new Result(ResultCode.SUCCESS.code, ResultCode.SUCCESS.message, null);
    }

    /**
     *
     * @param data 返回成功信息，并且附带数据data
     * @return
     */
    public static Result responseResult(Object data){
        return new Result(ResultCode.SUCCESS.code, ResultCode.SUCCESS.message, data);
    }

    /**
     *
     * @param resultCode 自定义返回信息枚举类，如要返回服务器内部错误，参数就可以是：ResultCode.SYSTEM_ERROR
     * @return
     */
    public static Result responseResult(ResultCode resultCode){
        return new Result(resultCode.code, resultCode.message, null);
    }

    /**
     *
     * @param resultCode    自定义返回信息枚举类
     * @param data  自定义附带的数据
     * @return
     */
    public static Result responseResult(ResultCode resultCode, Object data){
        return new Result(resultCode.code, resultCode.message, data);
    }

    /**
     * 这个方法一般用不上
     * @param code  自定义代码
     * @param msg   自定义消息
     * @param data  自定义数据
     * @return
     */
    public static Result responseResult(Integer code, String msg, Object data){
        return new Result(code, msg, data);
    }
}
